Tuning

This section offers a few tuning tips to run your system more efficiently, such as:

u Checking created files before sending them to record or play

u Logging long URIs

u Saving log files in an easily accessible format for this environment

u Adjusting memory

u Adjusting thread pool size

u Adjusting media cache

u VXML document caching

u Setting answer thresholds and media gap thresholds

Most of these tuning options are set in files on the CSP VoiceXML server. The following table identifies the names and locations of some of the configuration files used.

File

Location

vocalos-node.xml

/opt/VocalOS/Server/server/nodeserver/conf/

vocalos-daemon.conf

/opt/VocalOS/Server/bin/

vosconfig.cfg

/opt/VocalOS/NativeServer/conf/

Checking Files

You can verify that the files you are sending for record or play are written successfully. Be default, this option is turned off. For diagnostic purposes, you can turn this on temporarily to troubleshoot any NFS issues.

To turn on file checking:

1 Go to the vocalos-node.xml file in the /opt/VocalOS/Server/server/nodeserver/conf/ directory.

2 Find the MediaManager node.

3 Add the following entry.

<node name="MediaManager">

<map/>

<node name="vocalos:type=MediaManager">

<map>

...

<entry key="checkTempFileOnCreate" value="true"/>

4 Save the changes.

Long URIs

In a small percentage of calls, long URIs can cause a problem, even after a successful recognition. This problem occurs when some applications use a GET request with a very large URI (greater than 3000 characters).

The vocalos-node.xml file contains a new configuration option — vocalos.url.maxlength — to control the length of the HTTP GET parameter list. The default length is 2000 bytes. If the length is greater than this value, the HTTP GET is converted to an HTTP POST before submit.

You can also configure the maximum length by using the <property> element, for example:

<property name="vocalos.url.maxlength" value="1000"/>

In addition, warnings for these situations are written to the gateway.log file.

Saving Log Files

By default, log files are appended as Zip files. In a Linux environment, this makes it more difficult to diagnose problems because PkUnzip or other Unzip programs aren’t available. In the log4j.xml file, change the appender configuration as follows, from:

<appender name="FILE_GATEWAY"

class="net.vocalocity.common.util.logging.RollingZipFileAppender">

</appender>

to:

<appender name="FILE_GATEWAY"

class="org.jboss.logging.appender.RollingFileAppender">

</appender>

Adjusting Memory

You can adjust the setting that determines how much memory the Vocalocity Voice Browser can take. You adjust this setting in the vocalos-daemon.conf file. The settings are:

u wrapper.java.initmemory=512

u wrapper.java.maxmemory=1024

Also, you can adjust the following parameter to tune the jvm’s memory management and garbage collection:

u wrapper.java.additional.16=XX:NewSize=200M

Adjusting Thread Pool Size

You can adjust the size of thread pools in the vocalos-daemon.conf file. You should set it to at least 500, with a maximum of 800. Adjust this size in response to deadlocks.

u wrapper.java.additional.20=Dvocalos.globalthreadpool.maxthread=800

Set or Rename VMC

You enter the name of the VMC when you first install the Vocalocity Voice Browser. If you want to change the VMC name after installation, you change it in the vocalos-daemon.conf file:

u wrapper.java.additional.11=-Djboss.identity.domain=VMCName

Adjusting Media Cache

The media cache size depends on the application. If your application is big enough to hold audio and VXML in the application, you should probably set it at the maximum size. You can use either mb, kb, or Gb.

You adjust the media cache in the vocalos-node.xml file:

u <entry key="maxSize" value="50mb">

VXML Document Caching

You can specify the amount of time the Vocalocity Voice Browser caches VXML documents in the vocalos-node.xml file.

The following table describes the properties to set.

Property

Description

maxAge

The age, in seconds, at which the content of a VXML document is used. If the document age is greater than this setting, the content isn’t used unless a maxStale setting is provided. If the maxAge isn’t provided, a value derived from the innermost relevant maxAge property is used, if present.

maxStale

The number of seconds past the maxAge at which the document is willing to use expired content. If nothing is entered, a value derived from the innermost relevant maxStale property is used, if present.

The following example shows what these settings might look like in the vocalos-node.xml file.

<node name="vxml">

<map>

<entry key="initialMaxAge" value="30s"/>

<entry key="initialMaxStale" value="0"/>

</map>

</node>

Setting Answer Thresholds and Media Gap Thresholds

You can set these thresholds in the vosconfig.cfg file on the CSP VoiceXML server.

You can specify the answer thresholds in seconds as a double. This prompts the TEP to log the answer as a warning in the log file.

You can also configure media gap thresholds so that they show as warnings in the log file, as well. The definition of the gap is the time between answer and play start, and the time between record or play stop and record or play start.

The following example shows what these settings might look like in the vosconfig.cfg file.

u answerThreshold=10.5

u mediaGapThreshold=8.25

Identifying the Build Number

Knowing the build number can be helpful for troubleshooting purposes. You can find the build number in the vosconfig.cfg file:

build.number=111

Changing the Defined LLC

The primary and secondary LLC IP addresses are controlled by the .bashrc for the user excel. If you need to change the primary or secondary LLC, you must change it in the .bashrc for user excel and re-source or log in again after you change it.

The following properties identify the primary and secondary, or replicated, LLCs:

u export SK_LLC_HOST=10.0.1.2

u export SK_RLLC_HOST=10.0.1.3

Tracing a Call

Tracing a call is useful for troubleshooting purposes.

To trace a call:

1 On the server running the Vocalocity Voice Browser, open a terminal window.

2 Go to /opt/VocalOS/NativeServer/ and run:

tail -F <call processing application>.log

3 Keep the terminal window open.

4 Go to /opt/VocalOS/NativeServer/ and run:

tail -F vocalos-native-server.log

5 Go to /opt/VocalOS/Server/server/nodeserver/log/ and run:

tail -F server.log

6 Place a call to the CSP, and note that the log files are populating.